﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraEditors;
using QLT_BLL;
using QLT_Public;

namespace GiaoDien
{
    public partial class frm_LoaiThuoc : DevExpress.XtraEditors.XtraForm
    {
        public frm_LoaiThuoc()
        {
            InitializeComponent();
        }
         private int _flag;

        public int Flag
        {
            get { return _flag; }
            set { _flag = value; }
        }
        private int _MaLoaiThuoc;

        public int MaLoaiThuoc
        {
            get { return _MaLoaiThuoc; }
            set { _MaLoaiThuoc = value; }
        }
        private string _TenLoaiThuoc;

        public string TenLoaiThuoc
        {
            get { return _TenLoaiThuoc; }
            set { _TenLoaiThuoc = value; }
        }
        private string _GhiChu;

        public string GhiChu
        {
            get { return _GhiChu; }
            set { _GhiChu = value; }
        }
        public void GetData()
        {
            txtMaLoaiThuoc.Text = MaLoaiThuoc.ToString();
            txtTenLoaiThuoc.Text = TenLoaiThuoc;
            txtGhiChu.Text = GhiChu;
          }
        public delegate void GetInt(int kt);
        public GetInt MyGetData;
        public void EnabledText(Control ctr)
        {
            if (ctr is TextBox || ctr is TextEdit)
            {
                ctr.Enabled = false;
            }
            foreach (Control i in ctr.Controls)
            {
                EnabledText(i);
            }
        }
        public void EnabledText_True(Control ctr)
        {
            if (ctr is TextBox || ctr is TextEdit)
            {
                ctr.Enabled = true;
            }
            foreach (Control i in ctr.Controls)
            {
                EnabledText_True(i);
            }
        }
        public void Huy_Text(Control ctr)
        {
            if (ctr is TextBox || ctr is TextEdit)
            {
                ctr.Text =string.Empty;
            }
            foreach (Control i in ctr.Controls)
            {
                Huy_Text(i);
            }
        }
        public void LoadForm()
        {
            if (Flag == 0)
            {
                this.Text = "Thêm Loại Thuốc";
                bbi_Them.Enabled = false;
                bbi_Sua.Enabled = false;
            }
            if (Flag == 1)
            {
                this.Text = "Sửa Loại Thuốc";
                bbi_Them.Enabled = false;
                bbi_Sua.Enabled = false;
                GetData();
                errorProvider1.Clear();
            }
            if (Flag == 2)
            {// sua
                this.Text = "Xem Loại Thuốc"; 
                bbi_Them.Enabled = false;
                bbi_Sua.Enabled = false;
                bbi_Luu.Enabled = false;
                EnabledText(this);
                GetData();
                errorProvider1.Clear();
            }
        }
        private void frm_LoaiThuoc_Load(object sender, EventArgs e)
        {
            LoadForm();
        }
        NhatKy_Bll nhatKy_bll = new NhatKy_Bll();
        LoaiThuoc_BLL loaiThuoc_bll = new LoaiThuoc_BLL();
        private void bbi_Luu_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            NhatKy_Public nk = new NhatKy_Public();
            LoaiThuoc_Public t = new LoaiThuoc_Public();
            if (Flag == 0)
            {
                try
                {
                //them
                    if (txtTenLoaiThuoc.Text != "")
                    {
                        t.TenLoaiThuoc = txtTenLoaiThuoc.Text;
                        t.GhiChu = txtGhiChu.Text;
                        loaiThuoc_bll.insert_LoaiThuoc(t, t);
                        string d = DateTime.Now.ToString();
                        Class_TrungGian tg = new Class_TrungGian();
                        nk.TaiKhoan = tg.TaiKhoan;
                        nk.NgayGio = d;
                        nk.DoiTuong = tg.DoiTuong;
                        nk.HanhDong = "Thêm Mới";
                        nk.MoTa = "Thêm mới Loại thuốc: '" + txtTenLoaiThuoc.Text + "'";
                        nhatKy_bll.insert_NhatKy(nk, nk, nk, nk, nk);
                        XtraMessageBox.Show("Đã Thêm Loại Thuốc", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        Huy_Text(this);
                        bbi_Them.Enabled = true;
                        bbi_Sua.Enabled = true;
                        bbi_Luu.Enabled = false;
                        bbi_Huy.Enabled = false;
                    }
                    else
                        XtraMessageBox.Show("Bạn chưa nhập Tên loại thuốc!","Thông Báo",MessageBoxButtons.OK,MessageBoxIcon.Information);
                }

                catch (Exception)
                {
                    XtraMessageBox.Show("Thực hiện không thành công!Bạn hãy nhập lại dữ liệu", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
            if (Flag == 1)
            {
                try
                {
                //sua
                    if (txtMaLoaiThuoc.Text != "" && txtTenLoaiThuoc.Text!="")
                    {
                        t.MaLoaiThuoc = int.Parse(txtMaLoaiThuoc.Text);
                        t.TenLoaiThuoc = txtTenLoaiThuoc.Text;
                        t.GhiChu = txtGhiChu.Text;
                        loaiThuoc_bll.update_LoaiThuoc(t, t, t);
                        string d = DateTime.Now.ToString();
                        Class_TrungGian tg = new Class_TrungGian();
                        nk.TaiKhoan = tg.TaiKhoan;
                        nk.NgayGio = d;
                        nk.DoiTuong = tg.DoiTuong;
                        nk.HanhDong = "Sửa";
                        nk.MoTa = "Sửa thông tin Mã Loại thuốc: '" + txtMaLoaiThuoc.Text + "'có tên: '" + txtTenLoaiThuoc.Text + "'";
                        nhatKy_bll.insert_NhatKy(nk, nk, nk, nk, nk);
                        XtraMessageBox.Show("Đã Sửa Loại Thuốc", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        Huy_Text(this);
                        bbi_Them.Enabled = true;
                        bbi_Sua.Enabled = true;
                        bbi_Luu.Enabled = false;
                        bbi_Huy.Enabled = false;
                    }
                    else
                        XtraMessageBox.Show("Bạn chưa nhập đủ thông tin cần sửa!","Thông Báo",MessageBoxButtons.OK,MessageBoxIcon.Information);

                }

                catch (Exception)
                {
                    XtraMessageBox.Show("Thực hiện không thành công!Bạn hãy nhập lại dữ liệu", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
            if (Flag == 2)
            {
                try
                {
                    //sua khi xem
                    t.MaLoaiThuoc = int.Parse(txtMaLoaiThuoc.Text);
                    t.TenLoaiThuoc = txtTenLoaiThuoc.Text;
                    t.GhiChu = txtGhiChu.Text;
                    loaiThuoc_bll.update_LoaiThuoc(t, t, t);
                    XtraMessageBox.Show("Đã Sửa Loại Thuốc", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    Huy_Text(this);
                    bbi_Them.Enabled = true;
                    bbi_Sua.Enabled = true;
                    bbi_Luu.Enabled = false;
                    bbi_Huy.Enabled = false;

                }

                catch (Exception)
                {
                    XtraMessageBox.Show("Thực hiện không thành công!Bạn hãy nhập lại dữ liệu", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }        
            MyGetData(1);
            errorProvider1.Clear();
        }

        private void bbi_Huy_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            Huy_Text(this);
            bbi_Them.Enabled = true;
            bbi_Sua.Enabled = true;
            bbi_Luu.Enabled = false;
            bbi_Huy.Enabled = false;
            EnabledText_True(this);
            errorProvider1.Clear();
            Flag = 11;
        }

        private void bbi_Thoat_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            this.Close();
        }

        private void bbi_Them_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            Flag = 0;
            txtMaLoaiThuoc.Enabled = false;
            txtMaLoaiThuoc.Text = "Mã tự sinh";
            bbi_Luu.Enabled = true;
            bbi_Huy.Enabled = true;
            bbi_Sua.Enabled = false;
            bbi_Them.Enabled = false;
        }

        private void bbi_Sua_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            Flag = 1;
            txtMaLoaiThuoc.Enabled = true;
            bbi_Them.Enabled = false;
            bbi_Sua.Enabled = false;
            bbi_Luu.Enabled = true;
            bbi_Huy.Enabled = true;
        }

        private void txtTenLoaiThuoc_Leave(object sender, EventArgs e)
        {
            if (txtTenLoaiThuoc.Text == "")
                txtTenLoaiThuoc.Focus();
        }

        private void txtGhiChu_Leave(object sender, EventArgs e)
        {
            if (txtGhiChu.Text == "")
                txtGhiChu.Focus();
        }

        private void txtTenLoaiThuoc_TextChanged(object sender, EventArgs e)
        {
            string sql = "select * from tbl_LoaiThuoc where TenLoaiThuoc like N'"+txtTenLoaiThuoc.Text+"'";
            DataTable dt = new DataTable();
            dt = loaiThuoc_bll.taoBang(sql);
            if (dt.Rows.Count > 0)
            {
                errorProvider1.SetError(txtTenLoaiThuoc, "Tên loại thuốc đã tồn tại!");
                txtTenLoaiThuoc.Focus();
            }
            else
                errorProvider1.Clear();
        }

        private void txtMaLoaiThuoc_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!Char.IsControl(e.KeyChar) && !Char.IsDigit(e.KeyChar))
                e.Handled = true;
        }

        private void txtMaLoaiThuoc_TextChanged(object sender, EventArgs e)
        {
            try
            {
                string sql = "select * from tbl_LoaiThuoc where MaLoaiThuoc='" + txtMaLoaiThuoc.Text + "'";
                DataTable dt = new DataTable();
                dt = loaiThuoc_bll.taoBang(sql);
                if (dt.Rows.Count == 0)
                {
                    errorProvider1.SetError(txtMaLoaiThuoc, "Mã loại thuốc này không tồn tại!");
                    txtMaLoaiThuoc.Focus();
                }
                else
                    errorProvider1.Clear();
            }
            catch (Exception)
            { }
        }

               
    }
}